package com.academic.system.model;

import java.time.LocalDateTime;

/**
 * 学术成果实体类
 */
public class Achievement {
    
    private Integer id;
    private String title;           // 成果标题
    private String type;            // 成果类型：论文、专利、项目等
    private String description;     // 成果描述
    private String authors;         // 作者列表
    private String journal;         // 发表期刊/会议（论文适用）
    private String patentNo;        // 专利号（专利适用）
    private String projectNo;       // 项目编号（项目适用）
    private LocalDateTime publishDate;  // 发表/获批日期
    private String status;          // 状态：待审核、已通过、已拒绝
    private String attachmentUrl;   // 附件URL
    private LocalDateTime createdAt;    // 创建时间
    private LocalDateTime updatedAt;    // 更新时间
    private String comments;        // 评审意见
    private User student;           // 所属学生
    private User reviewer;          // 审核教师
    
    public Achievement() {
        this.createdAt = LocalDateTime.now();
        this.status = "待审核";
    }
    
    // Getters and Setters
    public Integer getId() {
        return id;
    }
    
    public void setId(Integer id) {
        this.id = id;
    }
    
    public String getTitle() {
        return title;
    }
    
    public void setTitle(String title) {
        this.title = title;
    }
    
    public String getType() {
        return type;
    }
    
    public void setType(String type) {
        this.type = type;
    }
    
    public String getDescription() {
        return description;
    }
    
    public void setDescription(String description) {
        this.description = description;
    }
    
    public String getAuthors() {
        return authors;
    }
    
    public void setAuthors(String authors) {
        this.authors = authors;
    }
    
    public String getJournal() {
        return journal;
    }
    
    public void setJournal(String journal) {
        this.journal = journal;
    }
    
    public String getPatentNo() {
        return patentNo;
    }
    
    public void setPatentNo(String patentNo) {
        this.patentNo = patentNo;
    }
    
    public String getProjectNo() {
        return projectNo;
    }
    
    public void setProjectNo(String projectNo) {
        this.projectNo = projectNo;
    }
    
    public LocalDateTime getPublishDate() {
        return publishDate;
    }
    
    public void setPublishDate(LocalDateTime publishDate) {
        this.publishDate = publishDate;
    }
    
    public String getStatus() {
        return status;
    }
    
    public void setStatus(String status) {
        this.status = status;
    }
    
    public String getAttachmentUrl() {
        return attachmentUrl;
    }
    
    public void setAttachmentUrl(String attachmentUrl) {
        this.attachmentUrl = attachmentUrl;
    }
    
    public LocalDateTime getCreatedAt() {
        return createdAt;
    }
    
    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }
    
    public LocalDateTime getUpdatedAt() {
        return updatedAt;
    }
    
    public void setUpdatedAt(LocalDateTime updatedAt) {
        this.updatedAt = updatedAt;
    }
    
    public String getComments() {
        return comments;
    }
    
    public void setComments(String comments) {
        this.comments = comments;
    }
    
    public User getStudent() {
        return student;
    }
    
    public void setStudent(User student) {
        this.student = student;
    }
    
    public User getReviewer() {
        return reviewer;
    }
    
    public void setReviewer(User reviewer) {
        this.reviewer = reviewer;
    }
} 